package com.movie.ticketing.paymentservice.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsGlobalConfig {

    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        // 允许前端应用的域名
        config.addAllowedOrigin("http://localhost:5173"); // Apifox 或其他前端应用的地址
        config.addAllowedOrigin("http://localhost:3000"); // 另一个前端应用的地址，例如 React 或 Angular 应用
        // 根据需要添加更多允许的域名

        // 允许所有请求头
        config.addAllowedHeader("*");
        // 允许所有请求方法
        config.addAllowedMethod("*");
        // 允许携带凭据（如 cookies）
        config.setAllowCredentials(true);

        // 将配置应用到所有路径
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}